package org.shx.springboot.ollama.ai.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 跨域配置 一
 * 使用session必须要设置跨域的域名
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
//                .allowedOrigins("http://example.com")
                .allowedOrigins("http://localhost:8080") // 替换为你的前端实际域名+端口 指定具体的前端域名（不能用 *）
                .allowedMethods("GET", "POST", "PUT", "DELETE")
//        allowedOrigins("*") 在 allowCredentials=true 时不被允许，因为安全限制。
//        allowedOriginPatterns("*") 是 Spring 支持的替代方案，既允许通配符，又能与 allowCredentials=true 兼容。
                .allowedOriginPatterns("*")
                .allowedHeaders("*")
                .allowCredentials(true)
                .maxAge(3600);
    }
}

/*
* 跨域
*
单独设置

@CrossOrigin(origins = "*", allowedHeaders = "*", methods = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE})
public class YourController {


@CrossOrigin(origins = "http://example.com", allowedHeaders = "Content-Type")
@GetMapping("/private")
public String privateMethod() {

* */